Video coding or compression is used in a variety of applications to reduce the amount of memory and/or bandwidth needed to store or transmit a stream of video pictures or frames. Single pass and multi-pass video encoding techniques and apparatuses have been developed, the former providing fast encoding and the latter facilitating higher-quality coded video. In general, single pass coding encodes a given frame based on previous video data in a sequence of video frames. Single pass encoders do not ensure good video quality since the encoder cannot predict what kind of input will be encountered in the future. Thus, the single pass encoding approach suffers from diminished quality encoded video when the nature of the video content is changing. The multi-pass approach involves encoding the video repeatedly such that one video encoding pass generates data that is used by a subsequent encoding pass, and the compressed video output stream is generated by the final encoding pass. However, multi-pass encoding suffers from many shortcomings, particularly for real time applications. First, multi-pass encoding suffers from increased computational complexity, where dual-pass encoding is typically more than twice the cost of single pass encoding in terms of encoding time, processing resources and memory requirements. As a result, many multi-pass encoders are not suitable for real time systems where encoding has to be at least as fast as the input video, typically 30 to 60 frames per second (fps).